//package com.shop.loan.config;
//
//import lombok.extern.slf4j.Slf4j;
//import org.apache.catalina.connector.Request;
//import org.apache.catalina.connector.RequestFacade;
//import org.springframework.boot.web.servlet.FilterRegistrationBean;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import javax.servlet.*;
//import java.lang.reflect.Field;
//import java.nio.charset.Charset;
//
//@Slf4j
//@Configuration
//public class GBKFilterConfig {
//
//    @Bean
//    public FilterRegistrationBean gbkFilter() {
//        FilterRegistrationBean registration = new FilterRegistrationBean();
//        registration.setDispatcherTypes(DispatcherType.REQUEST);
//        registration.setFilter(new Filter() {
//            @Override
//            public void init(FilterConfig filterConfig) {
//            }
//
//            @Override
//            public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
//                log.info("接口进入gbkFilter------------");
//                RequestFacade req = (RequestFacade) request;
//                Class clazz = req.getClass();
//                try {
//                    Field field = clazz.getDeclaredField("request");
//                    field.setAccessible(true);
//                    Request r = (Request) field.get(req);
//                    org.apache.coyote.Request p = r.getCoyoteRequest();
//                    p.getParameters().setQueryStringCharset(Charset.forName("GBK"));
//                    chain.doFilter(request, response);
//                } catch (Exception e) {
//                    e.printStackTrace();
//                }
//            }
//
//            @Override
//            public void destroy() {
//            }
//        });
//        // 针对处理的请求
//        registration.addUrlPatterns("/app/alipay/notify");
//        registration.setName("gbkFilter");
//        registration.setOrder(Integer.MIN_VALUE);
//        return registration;
//    }
//}
